package ru.mirent;

import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import ru.mirent.PngTypeDiagram;

import java.io.File;

import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;

public class PngTypeDiagramTest {

    /**
     * Результат проверки теста - одноименный сохраненный файл со сгенерированной диаграммой.
     */
    @Disabled
    @Test
    void positiveSaveDiagramTest() {
        String source = "@startuml\n" +
                "Bob -> Alice : hello\n" +
                "@enduml";

        PngTypeDiagram pngTypeDiagram = new PngTypeDiagram(source);
        pngTypeDiagram.saveToFile(new File ("test.png"));
    }

    @Test
    void negativeGenerateCodeDiagramTest() {
        String source = "@startuml";

        PngTypeDiagram pngTypeDiagram = new PngTypeDiagram(source);

        File fileMock = mock(File.class);
        when(fileMock.getPath()).thenReturn("dummy.txt");

        RuntimeException failed = Assertions.assertThrows(RuntimeException.class,
                () -> pngTypeDiagram.saveToFile(fileMock)
        );
        Assertions.assertEquals("Ошибка генерации диаграммы", failed.getMessage());
    }
}
